home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / yacc / flexyacc / aflex.lha / aflex / src / file_managerB.a < prev    next >
Text File  |  1991-05-16  |  3KB  |  98 lines

  1. -- Copyright (c) 1990 Regents of the University of California.
  2. -- All rights reserved.
  3. --
  4. -- This software was developed by John Self of the Arcadia project
  5. -- at the University of California, Irvine.
  6. --
  7. -- Redistribution and use in source and binary forms are permitted
  8. -- provided that the above copyright notice and this paragraph are
  9. -- duplicated in all such forms and that any documentation,
  10. -- advertising materials, and other materials related to such
  11. -- distribution and use acknowledge that the software was developed
  12. -- by the University of California, Irvine.  The name of the
  13. -- University may not be used to endorse or promote products derived
  14. -- from this software without specific prior written permission.
  15. -- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  16. -- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  17. -- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  18.  
  19. -- TITLE external_file_manager
  20. -- AUTHOR: John Self (UCI)
  21. -- DESCRIPTION opens external files for other functions
  22. -- NOTES This package opens external files, and thus may be system dependent
  23. --       because of limitations on file names.
  24. --       This version is for the VADS 5.5 Ada development system.
  25. -- $Header: /co/ua/self/arcadia/aflex/ada/src/RCS/file_managerB.a,v 1.5 90/01/12 15:19:58 self Exp Locker: self $ 
  26.  
  27. with MISC_DEFS, TSTRING, TEXT_IO, MISC; use MISC_DEFS, TSTRING, TEXT_IO, MISC; 
  28.  
  29. package body EXTERNAL_FILE_MANAGER is 
  30.  
  31. -- FIX comment about compiler dependent
  32.  
  33.   subtype SUFFIX_TYPE is STRING(1 .. 1); 
  34.  
  35.   function ADA_SUFFIX return SUFFIX_TYPE is 
  36.   begin
  37.     return "a"; 
  38.   end ADA_SUFFIX; 
  39.  
  40.   procedure GET_IO_FILE(F : in out FILE_TYPE) is 
  41.   begin
  42.     if (LEN(INFILENAME) /= 0) then 
  43.       CREATE(F, OUT_FILE, STR(MISC.BASENAME) & "_io." & ADA_SUFFIX); 
  44.     else 
  45.       CREATE(F, OUT_FILE, "aflex_yy_io." & ADA_SUFFIX); 
  46.     end if; 
  47.   exception
  48.     when USE_ERROR | NAME_ERROR => 
  49.       MISC.AFLEXFATAL("could not create IO package file"); 
  50.   end GET_IO_FILE; 
  51.  
  52.   procedure GET_DFA_FILE(F : in out FILE_TYPE) is 
  53.   begin
  54.     if (LEN(INFILENAME) /= 0) then 
  55.       CREATE(F, OUT_FILE, STR(MISC.BASENAME) & "_dfa." & ADA_SUFFIX); 
  56.     else 
  57.       CREATE(F, OUT_FILE, "aflex_yy_dfa." & ADA_SUFFIX); 
  58.     end if; 
  59.   exception
  60.     when USE_ERROR | NAME_ERROR => 
  61.       MISC.AFLEXFATAL("could not create DFA package file"); 
  62.   end GET_DFA_FILE; 
  63.  
  64.   procedure GET_SCANNER_FILE(F : in out FILE_TYPE) is 
  65.     OUTFILE_NAME : VSTRING; 
  66.   begin
  67.     if (LEN(INFILENAME) /= 0) then 
  68.  
  69.       -- give out infile + ada_suffix
  70.       OUTFILE_NAME := MISC.BASENAME & "." & ADA_SUFFIX; 
  71.     else 
  72.       OUTFILE_NAME := VSTR("aflex_yy." & ADA_SUFFIX); 
  73.     end if; 
  74.  
  75.     CREATE(F, OUT_FILE, STR(OUTFILE_NAME)); 
  76.     SET_OUTPUT(F); 
  77.   exception
  78.     when NAME_ERROR | USE_ERROR => 
  79.       MISC.AFLEXFATAL("can't create scanner file " & OUTFILE_NAME); 
  80.   end GET_SCANNER_FILE; 
  81.  
  82.   procedure GET_BACKTRACK_FILE(F : in out FILE_TYPE) is 
  83.   begin
  84.     CREATE(F, OUT_FILE, "aflex.backtrack"); 
  85.   exception
  86.     when USE_ERROR | NAME_ERROR => 
  87.       MISC.AFLEXFATAL("could not create backtrack file"); 
  88.   end GET_BACKTRACK_FILE; 
  89.  
  90.   procedure INITIALIZE_FILES is 
  91.   begin
  92.     null; 
  93.  
  94.   -- doesn't need to do anything on Verdix
  95.   end INITIALIZE_FILES; 
  96.  
  97. end EXTERNAL_FILE_MANAGER; 
  98.